import java.util.*;

//枚举
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串ArrayList
     */
    public ArrayList<String> restoreIpAddresses (String s) {
        // write code here
        ArrayList<String> res=new ArrayList<String>();
        int n=s.length();
        //截取每个点的位置
for(int i=1;i<4&&i<n-2;i++){
    for(int j=i+1;j<i+4&&j<n-1;j++){
        for(int k=j+1;k<j+4&&k<n;k++){
            //最后一段剩余不能超过3
            if(n-k>=4)
            continue;
            String a=s.substring(0,i);
            String b=s.substring(i,j);
            String c=s.substring(j,k);
            String d=s.substring(k,n);
            //排除数字大于255
            if(Integer.parseInt(a)>255 || Integer.parseInt(b)>255 ||Integer.parseInt(c)>255 ||Integer.parseInt(d)>255)
            continue;
            //排除有前导0
            if((a.length()!=1&&a.charAt(0)=='0') ||(b.length()!=1&&b.charAt(0)=='0') ||(c.length()!=1&&c.charAt(0)=='0') ||(d.length()!=1&&d.charAt(0)=='0'))
            continue;
            String temp=a+"."+b+"."+c+"."+d;
            res.add(temp);
        }
    }
}
return res;
    }
}